// 跨域中间件
// 方便前端直接调用后端接口

import { Context, Next } from "koa";

async function Cors(ctx: Context, next: Next) {
    // origin http请求来源
    const origin = ctx.get('origin');

    // chrome默认在http模式下不允许带cookie
    if (true) {
        ctx.set('Access-Control-Allow-Origin', origin);  // 允许所有的来源请求
        ctx.set('Access-Control-Allow-Headers', "*");
        ctx.set('Access-Control-Allow-Methods', 'GET,POST,PUT,DELETE,OPTIONS'); //允许所有的restful请求方法
        ctx.set('Access-Control-Allow-Crddentials', "true");  // 允许带cookie
        ctx.set('Access-Control-Max-Age', '97897298797')

        // 如果是options请求，直接返回, 跨域时才会有options探针请求
        if (ctx.method === 'OPTIONS') {
            ctx.status = 204;
            return;
        }
    }

    await next();
}

export default Cors
